Scaling existing systems and solutions to the ever growing requirements and needs of its customers is a problem faced by cloud systems and networks. With the spike in the amount of data, comprising of master data of the customers, generation of purchase orders, requisition objects, legal documents, approval trail, and so forth, the demand on the system resources has increased extensively. As the business and demands of the customers have increased, so has the revenue, and so have the resources deployed to serve the customers. However, since the system is a multi-tenant shared system, where resources and computing power are shared between different tenants, checks are put in place to ensure that the request sizes are throttled and a malicious user or program does not have an impact on others.
While such throttling of resources is an essential requirement to keep the system running properly during sudden spikes of data requests or during malicious requests by an attacker or abnormal system, throttling has an impact on the actual business requirement of the data required to complete a business process. Assume a business application programming interface (API) is throttled to return only the latest 500 data elements even though the request might have been made for data for the last six months comprising of 8000 objects. In such a scenario, throttling of resources acts in a counterproductive manner to the business needs. Moreover, this necessitates an addition of more complexity in the software system by setting up offline and batch systems to retrieve such data. The addition of such processes and offline batch systems only adds to the complexity and unnecessary duplication of multiple end points for the same resources to the ever growing space of customer integrations in enterprise software systems.